﻿using System.Windows;
using kursovaya.Data.Context;
using kursovaya.Data.Entity;

namespace kursovaya.Windows
{
    public partial class AddTecWindow : Window
    {
        public AddTecWindow()
        {
            InitializeComponent();
        }

        public void AddRecordButton_OnClick(object sender, RoutedEventArgs e)
        {
            string firstname = FirstNameTextBox.Text.Trim();
            string lastname = LastNameTextBox.Text.Trim();
            string middlename = MiddleNameTextBox.Text.Trim();
            string ageText = AgeTextBox.Text.Trim();
            string role = RoleTextBox.Text.Trim();
            string workexpirience = WorkExpirienceTextBox.Text.Trim();

            if (string.IsNullOrWhiteSpace(firstname) || string.IsNullOrWhiteSpace(lastname) ||
                string.IsNullOrWhiteSpace(middlename) || string.IsNullOrWhiteSpace(ageText) ||
                string.IsNullOrWhiteSpace(role) || string.IsNullOrWhiteSpace(workexpirience))
            {
                MessageBox.Show("Поля не должны быть пустыми!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (firstname.Length > 20 || lastname.Length > 20 || middlename.Length > 20)
            {
                MessageBox.Show("Имя, фамилия и отчество не должны превышать 20 символов!", "Ошибка",
                    MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (!int.TryParse(ageText, out int age) || age < 14 || age > 70)
            {
                MessageBox.Show("Введите корректный возраст (от 14 до 70 лет)!", "Ошибка", MessageBoxButton.OK,
                    MessageBoxImage.Error);
                return;
            }

            if (role.Length > 50 || workexpirience.Length > 50)
            {
                MessageBox.Show("Роль и опыт работы не должны превышать 50 символов!", "Ошибка", MessageBoxButton.OK,
                    MessageBoxImage.Error);
                return;
            }

            Technician technician =
                new Technician(firstname, lastname, middlename, age.ToString(), role, workexpirience);

            using (var db = new DbContext())
            {
                db.Technicians.Add(technician);
                db.SaveChanges();
            }

            MessageBox.Show("Работник успешно добавлен!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);

            FirstNameTextBox.Text = "";
            LastNameTextBox.Text = "";
            MiddleNameTextBox.Text = "";
            AgeTextBox.Text = "";
            RoleTextBox.Text = "";
            WorkExpirienceTextBox.Text = "";
        }
    }
}